package com.diaohw.platform.utility.uml.core.enums;

public enum RelationshipEnum {
    /**
     * 泛化关系表示一般与特殊的关系，通常用于表示继承。
     * 泛化关系用带三角箭头的实线表示，箭头指向一般类。例如，Animal是Dog的父类。在PlantUML中，泛化关系用<|--表示‌
     */
    Generalization("--|>"),
    /**
     * 实现关系表示一个类实现一个接口。实现关系用带三角箭头的虚线表示，箭头指向实现类。
     * 例如，Car实现了Driveable接口。在PlantUML中，实现关系用
     */
    Realization("..|>"),
    /**
     * 依赖关系是一种使用关系，表示一个类使用另一个类。在UML中，依赖关系用带箭头的虚线表示，箭头从使用类指向被依赖的类。
     * 例如，Student类的study方法需要一个Book对象作为参数，这表示Student依赖于Book。在PlantUML中，依赖关系用..>表示‌
     */
    Dependency("..>"),
    /**
     * 关联关系表示两个类之间有语义上的联系，通常是一个类包含另一个类的对象。
     * 关联关系用实线表示，箭头可选。例如，Student和Course之间存在关联关系，因为一个学生可以注册多门课程。在PlantUML中，关联关系用--表示‌
     */
    Association("-->"),
    /**
     * 聚合关系表示整体与部分的关系，部分可以离开整体而独立存在。聚合关系用空心菱形和实线表示，箭头指向整体。
     * 例如，University包含多个Department，但Department可以独立于University存在。在PlantUML中，聚合关系用o--表示‌
     */
    Aggregation("--o"),
    /**
     * 组合关系也是一种整体与部分的关系，但部分与整体的生命周期相同。
     * 组合关系用实心菱形和实线表示，箭头指向整体。例如，Car由Engine、Wheel等部分组成，这些部分与Car的生命周期相同。在PlantUML中，组合关系用<|--
     */
    Composition("--|>");

    public final String value;

    RelationshipEnum(String value) {
        this.value = value;
    }
}
